﻿
#include "stdafx.h"
#include "Ddb.h"
#include "SplashWnd.h"

//////////////////////////////////////////////////////////////////////////////
//CSplashWnd消息循环
BEGIN_MESSAGE_MAP(CShowWnd, CWnd)
	ON_WM_CLOSE()
	ON_WM_TIMER()
	ON_WM_CREATE()
	ON_WM_ERASEBKGND()
END_MESSAGE_MAP()

//////////////////////////////////////////////////////////////////////////////
//CSplashWnd构造函数
CShowWnd::CShowWnd(const TCHAR* pbitmappath)
{
	m_bitmap = pbitmappath;
	//
	//注册WNDCLASS
	//
	

	//
	//建立窗口
	//
	
	
}

//////////////////////////////////////////////////////////////////////////////
//CSplashWnd析构函数
CShowWnd::~CShowWnd()
{

}

/****************************************************************************/
/*相关消息函数句柄***********************************************************/
/////////////////////////////////////////////////////////////////////////////
//CSplashAlpha窗口建立消息函数,对应WM_CREATE
BOOL CShowWnd::OnCreate(LPCREATESTRUCT lpcs)
{
	CenterWindow();
	::AnimateWindow(GetSafeHwnd(), 500, AW_BLEND);

	return true;
}

//////////////////////////////////////////////////////////////////////////////
//CSplashAlpha窗口关闭消息函数,对应WM_CLOSE
void CShowWnd::OnClose()
{
	::AnimateWindow(GetSafeHwnd(), 500, AW_BLEND | AW_HIDE);

	CWnd::OnClose();
}

/////////////////////////////////////////////////////////////////////////////
//CSplashAlpha定时消息函数,对应WM_TIMER
void CShowWnd::OnTimer(UINT nIDEvent)
{
	KillTimer(1);
	PostMessage(WM_CLOSE, 0, 0);
}

//////////////////////////////////////////////////////////////////////////////
//窗体背景重绘消息函数，对应消息ON_ERASEBKGND
BOOL CShowWnd::OnEraseBkgnd(CDC *pDC)
{
	DDB mSplashBitmap;
	if(m_bitmap == _T(""))
	{
		return true;
	}
	mSplashBitmap.DisplayDDB(pDC, m_bitmap);

	return true;
}

void CShowWnd::Show( int time )
{
	CString strWndClass;

	HCURSOR  hcur = AfxGetApp() ->LoadStandardCursor(IDC_ARROW);
	strWndClass = AfxRegisterWndClass(
		NULL,
		hcur,
		NULL,
		NULL);

	CreateEx(0, strWndClass, _T("启动画面->请稍后"), WS_POPUP, CW_USEDEFAULT, CW_USEDEFAULT,
		399, 409, NULL, NULL, NULL);


	this->CenterWindow();
	this->ShowWindow(SW_SHOW);

	this->UpdateWindow();
	SetTimer(1, time, NULL);
}
